package com.java3.dao;

import com.java2.bean.Customer;

import java.sql.Connection;
import java.sql.Date;
import java.util.List;

/**
 * @author jingjintao
 * @date 2021/6/10 - 22:38
 * 此接口用于规范针对于customers表的常用操作
 **/
public interface CustomerDAO {
    /**
     * 添加
     * @param conn
     * @param customer
     */
    void insert(Connection conn, Customer customer);

    /**
     * 根据ID删除
     * @param conn
     * @param id
     */
    void deleteById(Connection conn, int id);

    /**
     * 针对内存中的customer对象，去修改表中指定的记录
     * @param conn
     * @param customer
     */
    void update(Connection conn, Customer customer);

    /**
     * 根据ID查询制定的数据
     * @param conn
     * @param id
     * @return
     */
    Customer getById(Connection conn, int id);

    /**
     * 查询所有数据
     * @param conn
     * @return
     */
    List<Customer> getAll(Connection conn);

    /**
     * 返回表中的数据的条目数
     * @return
     */
    Long getCount(Connection conn);

    /**
     * 返回表中最大的生日
     * @return
     */
    Date getMaxDate(Connection conn);
}
